package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 配品管理对象 accessory_management
 *
 * @author ruoyi
 * @date 2025-05-24
 */
public class AccessoryManagement extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 配品唯一标识符(主键) */
    private Long id;

    /** 配品名称(如"巧克力酱1kg装") */
    @Excel(name = "配品名称")
    private String accessoryName;

    /** 配品简写(如"ChocSauce") */
    @Excel(name = "配品简写")
    private String accessoryAbbr;

    /** 条码/SKU编码(支持EAN-13、UPC等) */
    @Excel(name = "条码/SKU编码(支持EAN-13、UPC等)")
    private String barcode;

    /** 配品售价(对外销售价格) */
    @Excel(name = "配品售价(对外销售价格)")
    private BigDecimal salePrice;

    /** 配品成本价(采购/制作成本) */
    @Excel(name = "配品成本价(采购/制作成本)")
    private BigDecimal costPrice;

    /** 配品分类(如"酱料类"、"包装材料") */
    @Excel(name = "配品分类")
    private String category;

    /** 计量单位(如"瓶"、"千克"、"个") */
    @Excel(name = "计量单位")
    private String unit;

    /** 保质期(单位:天，0表示无保质期) */
    @Excel(name = "保质期(单位:天，0表示无保质期)")
    private Long shelfLife;

    /** 配品图片URL(支持多张时用JSON存储) */
    @Excel(name = "配品图片URL(支持多张时用JSON存储)")
    private String accessoryImage;

    /** 配品状态 */
    @Excel(name = "配品状态")
    private String status;

    /** 是否参与库存计算(0:不参与,1:参与) */
    @Excel(name = "是否参与库存计算(0:不参与,1:参与)")
    private Integer includeInventory;

    /** 配品品牌(如"好时"、"雀巢") */
    @Excel(name = "配品品牌")
    private String brand;

    /** 库存上限(安全库存警戒线) */
    @Excel(name = "库存上限(安全库存警戒线)")
    private Long maxInventory;

    /** 库存下限(补货触发阈值) */
    @Excel(name = "库存下限(补货触发阈值)")
    private Long minInventory;

    /** 原材料分类(如"食品原料"、"包装耗材") */
    @Excel(name = "原材料分类")
    private String rawMaterialCategory;

    /** 原材料名称(当为组合配品时填写) */
    @Excel(name = "原材料名称(当为组合配品时填写)")
    private String rawMaterialName;

    /** 原材料用量(如"0.5kg"面粉制作1个面包) */
    @Excel(name = "原材料用量")
    private BigDecimal rawMaterialQuantity;

    /** 原材料计量单位(需与unit字段单位可换算) */
    @Excel(name = "原材料计量单位(需与unit字段单位可换算)")
    private String rawMaterialUnit;

    /** 配品描述(规格、用途、注意事项等) */
    @Excel(name = "配品描述(规格、用途、注意事项等)")
    private String description;

    /** 所属门店名称(多门店系统用) */
    @Excel(name = "所属门店名称(多门店系统用)")
    private String storeName;

    /** 所属门店编号(关联门店表) */
    @Excel(name = "所属门店编号(关联门店表)")
    private String storeCode;

    /** 记录创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "记录创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date addTime;

    /** 操作员工(创建/修改人) */
    @Excel(name = "操作员工(创建/修改人)")
    private String operator;

    /** 手机号 */
    @Excel(name = "手机号")
    private String phone;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setAccessoryName(String accessoryName)
    {
        this.accessoryName = accessoryName;
    }

    public String getAccessoryName()
    {
        return accessoryName;
    }

    public void setAccessoryAbbr(String accessoryAbbr)
    {
        this.accessoryAbbr = accessoryAbbr;
    }

    public String getAccessoryAbbr()
    {
        return accessoryAbbr;
    }

    public void setBarcode(String barcode)
    {
        this.barcode = barcode;
    }

    public String getBarcode()
    {
        return barcode;
    }

    public void setSalePrice(BigDecimal salePrice)
    {
        this.salePrice = salePrice;
    }

    public BigDecimal getSalePrice()
    {
        return salePrice;
    }

    public void setCostPrice(BigDecimal costPrice)
    {
        this.costPrice = costPrice;
    }

    public BigDecimal getCostPrice()
    {
        return costPrice;
    }

    public void setCategory(String category)
    {
        this.category = category;
    }

    public String getCategory()
    {
        return category;
    }

    public void setUnit(String unit)
    {
        this.unit = unit;
    }

    public String getUnit()
    {
        return unit;
    }

    public void setShelfLife(Long shelfLife)
    {
        this.shelfLife = shelfLife;
    }

    public Long getShelfLife()
    {
        return shelfLife;
    }

    public void setAccessoryImage(String accessoryImage)
    {
        this.accessoryImage = accessoryImage;
    }

    public String getAccessoryImage()
    {
        return accessoryImage;
    }

    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }

    public void setIncludeInventory(Integer includeInventory)
    {
        this.includeInventory = includeInventory;
    }

    public Integer getIncludeInventory()
    {
        return includeInventory;
    }

    public void setBrand(String brand)
    {
        this.brand = brand;
    }

    public String getBrand()
    {
        return brand;
    }

    public void setMaxInventory(Long maxInventory)
    {
        this.maxInventory = maxInventory;
    }

    public Long getMaxInventory()
    {
        return maxInventory;
    }

    public void setMinInventory(Long minInventory)
    {
        this.minInventory = minInventory;
    }

    public Long getMinInventory()
    {
        return minInventory;
    }

    public void setRawMaterialCategory(String rawMaterialCategory)
    {
        this.rawMaterialCategory = rawMaterialCategory;
    }

    public String getRawMaterialCategory()
    {
        return rawMaterialCategory;
    }

    public void setRawMaterialName(String rawMaterialName)
    {
        this.rawMaterialName = rawMaterialName;
    }

    public String getRawMaterialName()
    {
        return rawMaterialName;
    }

    public void setRawMaterialQuantity(BigDecimal rawMaterialQuantity)
    {
        this.rawMaterialQuantity = rawMaterialQuantity;
    }

    public BigDecimal getRawMaterialQuantity()
    {
        return rawMaterialQuantity;
    }

    public void setRawMaterialUnit(String rawMaterialUnit)
    {
        this.rawMaterialUnit = rawMaterialUnit;
    }

    public String getRawMaterialUnit()
    {
        return rawMaterialUnit;
    }

    public void setDescription(String description)
    {
        this.description = description;
    }

    public String getDescription()
    {
        return description;
    }

    public void setStoreName(String storeName)
    {
        this.storeName = storeName;
    }

    public String getStoreName()
    {
        return storeName;
    }

    public void setStoreCode(String storeCode)
    {
        this.storeCode = storeCode;
    }

    public String getStoreCode()
    {
        return storeCode;
    }

    public void setAddTime(Date addTime)
    {
        this.addTime = addTime;
    }

    public Date getAddTime()
    {
        return addTime;
    }

    public void setOperator(String operator)
    {
        this.operator = operator;
    }

    public String getOperator()
    {
        return operator;
    }

    public void setPhone(String phone)
    {
        this.phone = phone;
    }

    public String getPhone()
    {
        return phone;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("accessoryName", getAccessoryName())
                .append("accessoryAbbr", getAccessoryAbbr())
                .append("barcode", getBarcode())
                .append("salePrice", getSalePrice())
                .append("costPrice", getCostPrice())
                .append("category", getCategory())
                .append("unit", getUnit())
                .append("shelfLife", getShelfLife())
                .append("accessoryImage", getAccessoryImage())
                .append("status", getStatus())
                .append("includeInventory", getIncludeInventory())
                .append("brand", getBrand())
                .append("maxInventory", getMaxInventory())
                .append("minInventory", getMinInventory())
                .append("rawMaterialCategory", getRawMaterialCategory())
                .append("rawMaterialName", getRawMaterialName())
                .append("rawMaterialQuantity", getRawMaterialQuantity())
                .append("rawMaterialUnit", getRawMaterialUnit())
                .append("description", getDescription())
                .append("storeName", getStoreName())
                .append("storeCode", getStoreCode())
                .append("addTime", getAddTime())
                .append("operator", getOperator())
                .append("phone", getPhone())
                .toString();
    }
}
